import { GraphicsHelper } from "../../core/utils";
import Bullet from "./bullet";
import { EditorAttr } from "./bullet_editor_attribute";
import { PhysicsMath, BulletSide } from "./physics_math"; const { ccclass, property } = cc._decorator;
/**
 * 重力
 */
const GRAVITY = cc.v2(0, -98);


class RopeNode {
    /**
   * 当前帧位置
   */
    pos: cc.Vec2 = null;
    /**
  * 上一帧的位置
  */
    prePos: cc.Vec2 = null; constructor(x: number, y: number) {
        this.pos = cc.v2(x, y);
        this.prePos = cc.v2(x, y);
    }
    onUpdate(dt: number) {
        // 计算速度（这个步长已经是两帧之间的步长了）
        const v = cc.Vec2.subtract(new cc.Vec2(), this.pos, this.prePos);
        // 保存上一帧的位置
        this.prePos.set(this.pos);
        // 叠加重力加速度
        v.add(cc.Vec2.multiplyScalar(new cc.Vec2(), GRAVITY, dt));
        // 计算下一帧位置
        this.pos.add(v);
    }
}


@ccclass
export default class Rope2 extends Bullet {
    /**
     * 节点数组
     */
    nodeArr: RopeNode[] = [];    /**
     * 头节点
     */
    head: RopeNode = null;    /**
     * 基础长度
     */
    @property
    baseLen = 20;    /**
     * 节点数量
     */
    @property
    count = 30;
};